// ============================== 导入依赖 ============================== //

import Vue from 'vue'

const NO_LOG = [
  'elevatorFloorChange',
  'devicePropertiesChange',
]

// ============================== 导出套接字方法 ============================== //

export default {
  /**
   * 套接字监听消息
   */
  socketOnMessage() {
    this.SOCKET.WS.onmessage = ({ data }) => {
      if (this.TIME.stoped) return // 全局时间已停止

      const obj = this.json(data) // 解析数据对象

      if (obj.wsCode === 4 && !this.isEmpty(obj.attachData)) {
        Vue.set(this.SOCKET, 'data', obj) // 记录到全局变量

        if (sessionStorage.logAll || localStorage.logAll || !NO_LOG.includes(obj.msgType)) {
          this.logInfo('【 WebSocket 】 消息', {}, obj) // 打印日志 (防止日志太多)
        }
      }
    }
  },
}
